package cc.orange.utils;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;

import androidx.annotation.RequiresApi;
import androidx.core.app.NotificationCompat;
import cc.orange.BuildConfig;
import cc.orange.R;
import cc.orange.SplashActivity;

/**
 * Created by CM on 2023/1/5.
 */

public class NotificaUtils {

   @RequiresApi(api = Build.VERSION_CODES.O)
   public static void gets(Context context,String num){
      /*
首先需要一个NotificationManager来对通知进行管理
调用Context的getSystemService()方法获取到。
getSystemService()方法接受的一个字符串参数用于确定系统的的哪一个服务。
*/
      NotificationManager notificationManager =
              (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
/*
调用NotificationChannel创建通知渠道实例
并为它设置属性
 */
//通知渠道的ID
      String id = "channel_01";
//用户可以看到的通知渠道的名字
      CharSequence name = "saf";
//用户可看到的通知描述
      String description = "";
//构建NotificationChannel实例
      NotificationChannel notificationChannel =
              new NotificationChannel(id, name, NotificationManager.IMPORTANCE_HIGH);
//配置通知渠道的属性
      notificationChannel.setDescription(description);
//设置通知出现时的闪光灯
      notificationChannel.enableLights(true);
      notificationChannel.setLightColor(Color.RED);
//设置通知出现时的震动
      notificationChannel.enableVibration(true);
      notificationChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500});
//在notificationManager中创建通知渠道
      notificationManager.createNotificationChannel(notificationChannel);
//定义一个PendingIntent点击Notification后启动一个Activity
      Intent it = new Intent(context, SplashActivity.class);
      PendingIntent pit = PendingIntent.getActivity(context, 0, it, 0);
//设置图片,通知标题,发送时间,提示方式等属性
      Notification notification = new NotificationCompat.Builder(context,id)
              .setContentTitle(BuildConfig.AppNames)                        //标题
              .setContentText("您有"+num+"条消息提示")      //内容
              .setSubText("   消息提示")                    //内容下面的一小段文字
              .setTicker("消息提示")             //收到信息后状态栏显示的文字信息
              .setWhen(System.currentTimeMillis())           //设置通知时间
              .setSmallIcon(R.drawable.icon_app1)            //设置大图标
              .setAutoCancel(true)                           //设置点击后取消Notification
              .setContentIntent(pit)                         //设置PendingIntent
              .build();

      notificationManager.notify(12, notification);
   }
}
